import {Database} from "better-sqlite3";
import {EntityMetadata} from "../../metadata";
import {DbConfig} from "../../core";

/**
 * 数据库连接接口
 */
export interface DbConnection {
  /**
   * 连接名称
   */
  name: string;

  /**
   * 数据库实例
   */
  db: Database;

  /**
   * 数据库配置
   */
  config: DbConfig;

  /**
   * 实体元数据映射
   * 键为实体类构造函数，值为元数据对象
   */
  entityMetadataMap: Map<Function, EntityMetadata>;

  /**
   * 表名到元数据的映射
   * 键为表名，值为元数据对象
   */
  tableNameMetadataMap: Map<string, EntityMetadata>;

  // /**
  //  * 全局填充器
  //  */
  // globalFiller?: EntityFiller;
  //
  // /**
  //  * 获取元数据存储
  //  * @returns 元数据存储实例
  //  */
  // getMetadataStore(): MetadataStore;
}
